const router = require('express').Router()//引一个express  然后用路由
const Movie = require('../../models/movie')

router.get('/', async (req, res) => {
    //数据多的时候需要使用分页
    let page = 1 //当前页码
    let per = 10//当前每一页现实的页码
    if (req.query.page) { //判断ul里面有没有传参数 如果有赋值给变量
        page = req.query.page * 1
    }
    if (req.query.per) {
        per = req.query.per * 1
    }
    const list = await Movie.find()
        .skip((page - 1) * per)//skip表示跳过指定的页数  相当于跳过一页10显示 页数
        .limit(per)//每一页取得数量
        .sort({ _id: -1 });//sort是排序 根据id倒叙排列 
    // console.log(list)     
    const totals = await Movie.countDocuments()//总数量获取 
    const pages = Math.ceil(totals / per)   //总数量除于每一页数量等于总页数
    res.render('admin/movies/list', { list, page, pages}); //把电影数据放在页面上展示

})













router.get('/edit/:id', async (req, res) => {
    const m = await Movie.findById(req.params.id)
    console.log(11122222);
    res.render('admin/movies/edit', { m }) //把数据传到首页
})


// 新增页面：
router.get("/new",async(req,res)=>{  
    res.render("admin/movies/new")
})

// 新增功能：
// get和post： 最直观的区别就是GET把参数包含在URL中，POST通过request body传递参数。
router.post("/create",async(req,res)=>{
  const m=new Movie(req.body);
  await m.save();//请求成功

  res.redirect("/admin/movies")//表示重定向---相当于点击新增后跳转到列表页面index
})



//修改功能：post请求后返回list
router.post("/update/:id", async (req, res) => {
    
    // await请求成功后
    await Movie.findByIdAndUpdate(req.params.id,
        req.body
    );

    res.redirect("/admin/movies");//表示重定向---相当于点击新增后跳转到列表页面index
})



















//删除
router.post('/del', async (req, res) => {
    await Movie.findByIdAndDelete(req.body.id)
    res.redirect("/admin/movies")
})


module.exports = router;